home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / python2.4 / node.h < prev    next >
Encoding:
C/C++ Source or Header  |  2005-10-18  |  850 b   |  40 lines

  1.  
  2. /* Parse tree node interface */
  3.  
  4. #ifndef Py_NODE_H
  5. #define Py_NODE_H
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9.  
  10. typedef struct _node {
  11.     short        n_type;
  12.     char        *n_str;
  13.     int            n_lineno;
  14.     int            n_nchildren;
  15.     struct _node    *n_child;
  16. } node;
  17.  
  18. PyAPI_FUNC(node *) PyNode_New(int type);
  19. PyAPI_FUNC(int) PyNode_AddChild(node *n, int type,
  20.                                       char *str, int lineno);
  21. PyAPI_FUNC(void) PyNode_Free(node *n);
  22.  
  23. /* Node access functions */
  24. #define NCH(n)        ((n)->n_nchildren)
  25.     
  26. #define CHILD(n, i)    (&(n)->n_child[i])
  27. #define RCHILD(n, i)    (CHILD(n, NCH(n) + i))
  28. #define TYPE(n)        ((n)->n_type)
  29. #define STR(n)        ((n)->n_str)
  30.  
  31. /* Assert that the type of a node is what we expect */
  32. #define REQ(n, type) assert(TYPE(n) == (type))
  33.  
  34. PyAPI_FUNC(void) PyNode_ListTree(node *);
  35.  
  36. #ifdef __cplusplus
  37. }
  38. #endif
  39. #endif /* !Py_NODE_H */
  40.